ggggllllPPPPiiiixxxxeeeellllMMMMaaaappppffffvvvv,,,, ggggllllPPPPiiiixxxxeeeellllMMMMaaaappppuuuuiiiivvvv,,,, ggggllllPPPPiiiixxxxeeeellllMMMMaaaappppuuuussssvvvv - set up pixel transfer maps
ggggllllHHHHiiiissssttttooooggggrrrraaaammmm, ggggllllMMMMiiiinnnnmmmmaaaaxxxx, and ggggllllSSSSeeeeppppaaaarrrraaaabbbblllleeeeFFFFiiiilllltttteeeerrrr2222DDDD. Use of these maps is
described completely in the ggggllllPPPPiiiixxxxeeeellllTTTTrrrraaaannnnssssffffeeeerrrr reference page, and partly in
the reference pages for the pixel and texture image commands. Only the
specification of the maps is described in this reference page.
_m_a_p is a symbolic map name, indicating one of ten maps to set. _m_a_p_s_i_z_e
specifies the number of entries in the map, and _v_a_l_u_e_s is a pointer to an
array of _m_a_p_s_i_z_e map values.
The ten maps are as follows:
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____IIII____TTTTOOOO____IIII Maps color indices to color indices.
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____SSSS____TTTTOOOO____SSSS Maps stencil indices to stencil indices.
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____IIII____TTTTOOOO____RRRR Maps color indices to red components.
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____IIII____TTTTOOOO____GGGG Maps color indices to green components.
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____IIII____TTTTOOOO____BBBB Maps color indices to blue components.
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____IIII____TTTTOOOO____AAAA Maps color indices to alpha components.
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____RRRR____TTTTOOOO____RRRR Maps red components to red components.
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____GGGG____TTTTOOOO____GGGG Maps green components to green components.
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____BBBB____TTTTOOOO____BBBB Maps blue components to blue components.
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____AAAA____TTTTOOOO____AAAA Maps alpha components to alpha components.
The entries in a map can be specified as single-precision floating-point
numbers, unsigned short integers, or unsigned long integers. Maps that
store color component values (all but GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____IIII____TTTTOOOO____IIII and
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____SSSS____TTTTOOOO____SSSS) retain their values in floating-point format, with
unspecified mantissa and exponent sizes. Floating-point values specified
by ggggllllPPPPiiiixxxxeeeellllMMMMaaaappppffffvvvv are converted directly to the internal floating-point
format of these maps, then clamped to the range [0,1]. Unsigned integer
values specified by ggggllllPPPPiiiixxxxeeeellllMMMMaaaappppuuuussssvvvv and ggggllllPPPPiiiixxxxeeeellllMMMMaaaappppuuuuiiiivvvv are converted
linearly such that the largest representable integer maps to 1.0, and 0
maps to 0.0.
Maps that store indices, GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____IIII____TTTTOOOO____IIII and GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____SSSS____TTTTOOOO____SSSS,
retain their values in fixed-point format, with an unspecified number of
bits to the right of the binary point. Floating-point values specified
by ggggllllPPPPiiiixxxxeeeellllMMMMaaaappppffffvvvv are converted directly to the internal fixed-point format
of these maps. Unsigned integer values specified by ggggllllPPPPiiiixxxxeeeellllMMMMaaaappppuuuussssvvvv and
ggggllllPPPPiiiixxxxeeeellllMMMMaaaappppuuuuiiiivvvv specify integer values, with all 0's to the right of the
binary point.
The following table shows the initial sizes and values for each of the
maps. Maps that are indexed by either color or stencil indices must have
n
_m_a_p_s_i_z_e = 2 for some n or the results are undefined. The maximum
allowable size for each map depends on the implementation and can be
determined by calling ggggllllGGGGeeeetttt with argument GGGGLLLL____MMMMAAAAXXXX____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____TTTTAAAABBBBLLLLEEEE. The
single maximum applies to all maps; it is at least 32.
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____VVVVAAAALLLLUUUUEEEE is generated if _m_a_p is GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____IIII____TTTTOOOO____IIII,
GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____IIII____TTTTOOOO____BBBB, or GGGGLLLL____PPPPIIIIXXXXEEEELLLL____MMMMAAAAPPPP____IIII____TTTTOOOO____AAAA, and _m_a_p_s_i_z_e is not a power
of two.
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ggggllllPPPPiiiixxxxeeeellllMMMMaaaapppp is executed between the
execution of ggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of ggggllllEEEEnnnndddd.